package icasue.tools.sqlhelper.adaptor.ibatis.mapper;

import icasue.reflect.annotations.NotNull;
import icasue.tools.sqlhelper.core.Consult;
import icasue.tools.sqlhelper.adaptor.annotation.AutoProvider;

import java.util.List;

/**
 * @Author: Qiao Hang
 * @CreateDate: 2021/11/12 上午9:39
 * @UpdateDate:
 * @Description:
 */
public interface Query<JavaType> {
    @AutoProvider(method = "queryAll")
    List<JavaType> queryAll();

    @AutoProvider(method = "queryByPrimary")
    List<JavaType> queryByPrimary(@NotNull JavaType inst);

    @AutoProvider(method = "querySmart")
    List<JavaType> querySmart(@NotNull JavaType inst);

    @AutoProvider(method = "queryByConsult")
    List<JavaType> queryByConsult(@NotNull Consult<JavaType> consult);
}
